---
output:
  pdf_document:
    toc: true
    toc_depth: 2
    fig_caption: true
    number_sections: true
title: "Bearing the Burden of Peace: Intergroup Attribution Bias and Public Support for Peace Provisions"
author:
- Amélie Godefroidt^[KU Leuven, amelie.godefroidt@kuleuven.be]
- Lala Muradova^[University of Southampton, l.muradova@soton.ac.uk]
date:
bibliography: references.bib
geometry: margin=1in
documentclass: article
classoption: a4paper
linestretch: 1.5
endnote: no
header-includes:
   - \usepackage{threeparttable, longtable, array, rotating, graphicx, cellspace, tabu, arydshln, dcolumn}
   - \newcolumntype{L}[1]{>{\raggedleft\arraybackslash}m{#1}}
   - \newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
   - \newcolumntype{R}[1]{>{\raggedright\arraybackslash}m{#1}} 
   - \usepackage{enumitem}
   - \usepackage{booktabs}
   - \newcommand{\tabitem}{~~\llap{\textbullet}~~}
   - \usepackage{amssymb}
   - \renewcommand{\thesection}{\Alph{section}}
   - \usepackage{tikz}
   - \newcommand*{\priority}[1]{\begin{tikzpicture}[scale=0.15] \draw (0,0) circle (1);\end{tikzpicture}}
   - \newcommand{\mysquare}[1]{\tikz{\draw (0,0) rectangle (0.2cm,0.2cm);}}
   - \usepackage{lscape}
   - \newcommand{\blandscape}{\begin{landscape}}
   - \newcommand{\elandscape}{\end{landscape}}
   - \usepackage[width=\textwidth]{caption}
   - \usepackage{hyperref}
   - \hypersetup{colorlinks=TRUE, linkcolor=black, urlcolor=cyan, citecolor=cyan}
---


```{r setup, include=FALSE}
rm(list=ls())
knitr::opts_chunk$set(echo = TRUE)
options(xtable.comment = FALSE)
Sys.setlocale("LC_TIME", "C")

# Load package (install first if not yet installed)
library(foreign)
library(haven)
library(readr)
library(tidyverse)
library(dplyr)
library(stargazer)
library(effectsize)
library(estimatr)
library(sandwich)
library(lmtest)
library(GGally) #nice corrplots
library(nnet) #multinomial regression
library(xtable)
library(apa) #corr in text
library(starpolishr) #tables with panels
```


```{r data, include=FALSE}
## Wave 1 Data ----------------------------------------------------------------
rawdata.t1 <- read.spss("data/T1-raw-data.sav", to.data.frame = TRUE, use.value.labels = TRUE)
mydata.t1 <- readRDS("data/T1-clean-data.rds")

## Wave 2 Data ----------------------------------------------------------------
rawdata.t2 <- readRDS("data/T2-raw-data.rds")
mydata.t2 <- readRDS("data/T2-clean-data.rds")

## Panel Data -----------------------------------------------------------------
mydata.t1$compensation.t2 <- mydata.t2$compensation[match(mydata.t1$ID, mydata.t2$ID)]
mydata.t1$punishment.t2 <- mydata.t2$punishment[match(mydata.t1$ID, mydata.t2$ID)]

# wide panel data
mypanel <- mydata.t1 %>%
  dplyr::select(ID, 
         comp_condition, compensation, compensation.t2, 
         punish_condition, punishment, punishment.t2) %>%
  rename(compensation.t1 = compensation,
         punishment.t1 = punishment) %>%
  mutate(comp_diff = compensation.t2 - compensation.t1,
         punish_diff = punishment.t2 - punishment.t1) %>%
  drop_na(compensation.t2)

# long panel data
mylongpanel <- reshape(as.data.frame(mypanel), sep = ".t", times = c(1, 2),
                       direction = "long",
                       varying = c("compensation.t1", "compensation.t2", 
                                   "punishment.t1", "punishment.t2"))
mylongpanel$time <- as.factor(mylongpanel$time)
mylongpanel$comp_condition <- relevel(mylongpanel$comp_condition, ref = "Control")
mylongpanel$punish_condition <- relevel(mylongpanel$punish_condition, ref = "Control")
```


```{r cleaning, include=FALSE}
mydata.t1$comp_condition <- relevel(mydata.t1$comp_condition, ref = "Control")#set reference cat.
summary(mydata.t1$comp_condition)
mydata.t1$punish_condition <- relevel(mydata.t1$punish_condition, ref = "Control")#set reference cat.
summary(mydata.t1$punish_condition)
```

\newpage

# Additional Information on Data Collection {#infodc}

\renewcommand{\thefigure}{A.\arabic{figure}}
\setcounter{figure}{0}
\renewcommand{\thetable}{A.\arabic{table}}
\setcounter{table}{0}
   
## Sampling Strategy {#sam}

```{r sampling, include=FALSE}
sampling <- read_csv("data/sampling.csv",
                     col_names = T,
                     cols(Day = col_character(),
                          Reach = col_number(),
                          Impressions = col_number(),
                          Frequency = col_number(),
                          Clicks = col_number(),
                          Amount = col_character(),
                          CPC = col_character(),
                          CTR = col_character(),
                          Comments = col_number(),
                          Reactions = col_number(),
                          Shares = col_number()
                        )
)
str(sampling)
```


We recruited participants via a multi-stage and multi-strategy campaign on Facebook. The paid strategy employed both boosted posts and Facebook ads (for information on the difference between boosted posts and Facebook ads, see \href{https://www.facebook.com/business/help/317083072148603}{here}), and we combined a so-called "traffic campaign" objective, which aims to send people from Facebook to an URL, with demographic targeting [@Boas2020]. Regarding the latter, we targeted the general adult population in Azerbaijan as well as specific groups at risk of being under-represented (i.e., women and rural respondents). We reached about 500,000 unique Facebook users through our paid strategy, 43,094 of whom clicked on the link that led to our survey. We paid a total of \texteuro 1,421.34 to reach these users or \texteuro 0.03 per click. The non-paid strategy consisted of sharing the survey in a widely selected number of Facebook groups and encouraging people to share the survey further (i.e., online snowball sampling). Table \ref{tab:posts} summarizes the recruitment campaign.

\begin{singlespace}
  \begin{longtable}{ Sc C{6.5cm} C{3.5cm} }
    \caption{Information on Facebook Sampling Strategy and Results, by Post.}\label{tab:posts}
    \endfirsthead
    \caption[]{continued from previous page} \\
    \endhead
    \hline
    \endlastfoot
    \hline
    \hline
    Picture & Strategy & Results \\ \hline
    \begin{minipage}[t]{3.5cm}
      (no picture)
    \end{minipage}
    &
    %\begin{minipage}{6.5cm}
      \begin{itemize}[noitemsep, leftmargin=*]
        \item Goal: Launch page
        \item Published: 14 December 2020 at 17:20
        \item Budget: No paid advertisement
        \item Target: No targeting strategy
      \end{itemize}
    %\end{minipage}
    & 
    %\begin{minipage}{3.5cm}
      \begin{itemize}[noitemsep, leftmargin=*]
        \item Reach: 772
        \item Reactions: 13
        \item Comments: 2
        \item Shares: 2
      \end{itemize}
    %\end{minipage}
    \\ \hline
    \begin{minipage}{.3\textwidth} 
      \includegraphics[width=\linewidth, height=40mm]{figures/post1-4.jpg}
    \end{minipage}
    &
    %\begin{minipage}{6.5cm}
      \begin{itemize}[noitemsep, leftmargin=*]
        \item Goal: Soft-launch survey
        \item Published: 28 December 2020 at 18:00
        \item Budget: No paid advertisement
        \item Target: No targeting strategy
      \end{itemize}
    %\end{minipage}
    & 
    %\begin{minipage}{3.5cm}
      \begin{itemize}[noitemsep, leftmargin=*]
        \item Reach: 794
        \item Reactions: 4
        \item Comments: 1
        \item Shares: 0
      \end{itemize}
    %\end{minipage}
    \\ \hline
        \begin{minipage}{.3\textwidth}
      \includegraphics[width=\linewidth, height=40mm]{figures/post2-6.jpg}
    \end{minipage}
    &
    %\begin{minipage}{6.5cm}
      \begin{itemize}[noitemsep, leftmargin=*]
        \item Goal: Launch survey
        \item Published: 5 January 2021 at 15:00
        \item Budget: \texteuro 150.00
        \item Target: Azerbaijan, 18-65+ year
      \end{itemize}
    %\end{minipage}
    & 
    %\begin{minipage}{3.5cm}
      \begin{itemize}[noitemsep, leftmargin=*]
        \item Reach: 124,291
        \item Reactions: 464
        \item Comments: 225
        \item Shares: 24
      \end{itemize}
    %\end{minipage}
    \\ \hline
        \begin{minipage}{.3\textwidth}
      \includegraphics[width=\linewidth, height=40mm]{figures/post3.jpg}
    \end{minipage}
    &
    %\begin{minipage}{6.5cm}
      \begin{itemize}[noitemsep, leftmargin=*]
        \item Goal: Increase rural participation
        \item Published: 11 January 2021 at 19:07
        \item Budget: \texteuro 150.00
        \item Target: Azerbaijan, 18-65+ year, rural respondents
      \end{itemize}
    %\end{minipage}
    & 
    %\begin{minipage}{3.5cm}
      \begin{itemize}[noitemsep, leftmargin=*]
        \item Reach: 115,470
        \item Reactions: 139
        \item Comments: 10
        \item Shares: 1
      \end{itemize}
    %\end{minipage}
    \\ \hline
        \begin{minipage}{.3\textwidth}
      \includegraphics[width=\linewidth, height=40mm]{figures/post1-4.jpg}
    \end{minipage}
    &
    %\begin{minipage}{6.5cm}
      \begin{itemize}[noitemsep, leftmargin=*]
        \item Goal: Increase general participation
        \item Published: 21 January 2021 at 14:21
        \item Budget: \texteuro 150.00
        \item Target: Azerbaijan, 18-65+ year
      \end{itemize}
    %\end{minipage}
    & 
    %\begin{minipage}{3.5cm}
      \begin{itemize}[noitemsep, leftmargin=*]
        \item Reach: 133,554
        \item Reactions: 461
        \item Comments: 213
        \item Shares: 44
      \end{itemize}
    %\end{minipage}
    \\ \hline
    \begin{minipage}[t]{3.5cm}
      (no picture)
    \end{minipage}
    &
    %\begin{minipage}{6.5cm}
      \begin{itemize}[noitemsep, leftmargin=*]
        \item Goal: Public dissemination of ethics and contact information
        \item Published: 22 January 2021 at 10:20
        \item Budget: No paid advertisement
        \item Target: No targeting strategy
      \end{itemize}
    %\end{minipage}
    & 
    %\begin{minipage}{3.5cm}
      \begin{itemize}[noitemsep, leftmargin=*]
        \item Reach: 910
        \item Reactions: 14
        \item Comments: 4
        \item Shares: 0
      \end{itemize}
    %\end{minipage}
    \\ \hline
        \begin{minipage}{.3\textwidth}
      \includegraphics[width=\linewidth, height=40mm]{figures/post2-6.jpg}
    \end{minipage}
    &
    %\begin{minipage}{6.5cm}
      \begin{itemize}[noitemsep, leftmargin=*]
        \item Goal: Increase female participation
        \item Published: 4 February 2021 at 15:05
        \item Budget: \texteuro 200.00
        \item Target: Azerbaijan, 18-65+ year, women
      \end{itemize}
    %\end{minipage}
    & 
    %\begin{minipage}{3.5cm}
      \begin{itemize}[noitemsep, leftmargin=*]
        \item Reach: 125,093
        \item Reactions: 721
        \item Comments: 106
        \item Shares: 39
      \end{itemize}
    %\end{minipage}
    \\ \hline
        \begin{minipage}{.3\textwidth}
      \includegraphics[width=\linewidth, height=40mm]{figures/post7.jpg}
    \end{minipage}
    &
    %\begin{minipage}{6.5cm}
      \begin{itemize}[noitemsep, leftmargin=*]
        \item Goal: Increase general participation
        \item Published: 11 February 2021 at 15:33
        \item Budget: \texteuro 150.00
        \item Target: Azerbaijan, 18-65+ year (women added on last day)
      \end{itemize}
    %\end{minipage}
    & 
    %\begin{minipage}{3.5cm}
      \begin{itemize}[noitemsep, leftmargin=*]
        \item Reach: 126,660
        \item Reactions: 932
        \item Comments: 34
        \item Shares: 40
      \end{itemize}
    %\end{minipage}
    \\ \hline
        \begin{minipage}{.3\textwidth}
      \includegraphics[width=\linewidth, height=40mm]{figures/post8.png}
    \end{minipage}
    &
    %\begin{minipage}{6.5cm}
      \begin{itemize}[noitemsep, leftmargin=*]
        \item Goal: Increase female participation 
        \item Published: 21 February 2021 at 15:02
        \item Budget: \texteuro 15.59 + \texteuro 16.87
        \item Target: Azerbaijan, 18-65+ year, women + rural respondents
      \end{itemize}
    %\end{minipage}
    & 
    %\begin{minipage}{3.5cm}
      \begin{itemize}[noitemsep, leftmargin=*]
        \item Reach: 19,320 
        \item Reactions: 44 
        \item Comments: 22
        \item Shares: 7
      \end{itemize}
    %\end{minipage}
    \\  \hline  \hline
\multicolumn{3}{l}{\footnotesize{\textit{Note:} Results include both organic and paid results. In addition to boosted posts, we also launched three Facebook ads of}} \\
\multicolumn{3}{l}{\footnotesize{\texteuro 92.15 (general population), \texteuro 288.01 (targeted at female respondents), and \texteuro 208.72 (targeted at rural respondents).}} \\
\end{longtable}
\end{singlespace}
  
\newpage 

Sampling respondents from a specific location on Facebook poses the risk of subjects misrepresenting themselves. To mitigate this, we implemented measures to increase the likelihood that our sample is (at least predominantly) from Azerbaijan, all while preserving respondent anonymity, in accordance with our ethics application and approval.

\begin{enumerate}

\item	\textbf{Geotargeting}: We utilized Facebook’s geotargeting features to focus our ads on users within a specific geographic location, such as the country or a specific set of regions within Azerbaijan. This helps narrow down the audience to individuals physically present in the targeted area.

\item	\textbf{Language and Cultural Cues}: In collaboration with local Azerbaijanis, we designed our ad content, including text and visuals, to reflect the language and cultural signs of the country.

\item	\textbf{Post Placement}: In addition to using broadly promoted ads, we choose post placements that were likely to be seen by users within the targeted country. This involved posting our survey in various local Facebook pages and groups, encompassing both pro-war, anti-war, and pages and groups unrelated to the conflict. Furthermore, our posts received substantial engagement, with about 400 shares and over 400 comments (predominantly written in Azerbaijani). We assume that people who misrepresent themselves would be less motivated to share or publicly engage with our posts.

\item	\textbf{Survey Verification and Data Validation}: Unfortunately, due to ethical constraints, we are unable to utilize IP addresses for verifying respondents’ locations. Nonetheless, we can employ several self-reported proxies to validate the data. Specifically, participants were asked about their place of birth and current residence. The responses revealed that 81 respondents (5\%) were not born in Azerbaijan, 120 respondents (12\%) currently live outside the country, and 13 respondents (0.8\%) neither were born nor currently live in Azerbaijan. Additionally, participants had the option to take the survey in Azerbaijani or English, and 92\% chose Azerbaijani. Excluding those who took the survey in English also does not alter the results (see Table \ref{tab:azonly} below).

\item	\textbf{Compensation}: Due to budget constraints, there was no compensation for participation in our survey. Only two, randomly selected respondents could win a voucher. The incentive for subjects from other countries to take our survey was, therefore, very low.

\end{enumerate}

While we expect these measures to have improved targeting, we acknowledge the possibility of participants providing inaccurate information; however, we believe this proportion to be negligible.



\newpage


## Summary Statistics {#sumstats}

```{r sumstats dataframe, include=FALSE}
#\footnote{Given low missingness on the covariates, we replace missing values with the overall mean in all analyses with covariates reported below. See also Section \ref{prereg}.}

mydata.t1$exposure_20 <- as.numeric(as.character(mydata.t1$exposure_2020))
mydata.t1$vote <- as.numeric(as.character(mydata.t1$vote))

sumstats <- mydata.t1 %>%
  
  # Select variables 
  dplyr::select(media,
         national_pride, poltrust, vote, 
         empathy, socdistance, prejudice,
         exposure_20, threat, ptsd)

summary(as.factor(mydata.t1$AZLanguage))
```


```{r sumstats table, include=FALSE}
stargazer(sumstats, title = "Summary Statistics for Socio-Political Variables.", digits=2,
          type = 'latex', header = FALSE, label = "tab:sumstats",   
          covariate.labels = c("Media exposure", 
                               "National pride",
                               "Political trust",
                               "Vote for New Azerbaijan Party",
                               "Outgroup empathy",
                               "Social distance",
                               "Prejudice",
                               "Exposure to 2020 war",
                               "Threat perceptions",
                               "PTSD symptoms")
          )
```


```{r count missingness, include=FALSE}
# NAs per row
sumstats$NACount <- apply(sumstats, 1, function(x) {length(x[is.na(x)])})

# NAs per column
NACountsByColumn <- lapply(sumstats, function(x) {length(x[is.na(x)])} )
NACountsByColumn
NAPercsByColumn <- mapply(FUN = `/`, NACountsByColumn, 1657, SIMPLIFY = FALSE)
NAPercsByColumn 
```

\begin{table}[!htbp] \centering 
  \caption{Summary Statistics for Socio-Political Variables.} 
  \label{tab:sumstats} 
\begin{tabular}{@{\extracolsep{5pt}}lcrcccc} 
\hline 
\hline \\[-1.8ex] 
Statistic & \multicolumn{1}{c}{N} & \multicolumn{1}{c}{NA (\%)} & \multicolumn{1}{c}{Mean} & \multicolumn{1}{c}{SD} & \multicolumn{1}{c}{Min} & \multicolumn{1}{c}{Max} \\ 
\midrule \\[-1.8ex] 
Media exposure & 1,649 & 8 (0.005\%) & 4.88 & 1.45 & 1 & 7 \\ 
National pride & 1,636 & 21 (0.013\%) & 9.71 & 2.60 & 1 & 11 \\ 
Political trust & 1,644 & 13 (0.008\%) & 5.99 & 2.52 & 1 & 11 \\ 
Vote for New Azerbaijan Party & 1,616 & 41 (0.025\%) & 0.33 & 0.47 & 0 & 1 \\ 
Outgroup empathy & 1,651 & 6 (0.004\%) & 2.18 & 1.17 & 1 & 5 \\ 
Social distance & 1,650 & 7 (0.004\%) & 3.94 & 1.03 & 1 & 5 \\ 
Prejudice & 1,648 & 9 (0.005\%) & 3.49 & 1.28 & 1 & 5 \\ 
Exposure to 2020 war & 1,630 & 27 (0.016\%) & 0.64 & 0.48 & 0 & 1 \\ 
Threat perceptions & 1,649 & 8 (0.005\%) & 3.53 & 1.39 & 1 & 5 \\ 
PTSD symptoms & 1,613 & 44 (0.027\%) & 2.43 & 0.85 & 1 & 5 \\ 
\hline \hline
\multicolumn{7}{l}{\footnotesize{\textit{Note:} Question wordings for all variables can be found at \href{ https://osf.io/x4trk/?view_only=e5c07f9348bb4f448d5aa84b71e12a34}{https://osf.io/x4trk/}.}} \\
\end{tabular} 
\end{table} 


\newpage

# Numerical Results {#numres}

\renewcommand{\thefigure}{B.\arabic{figure}}
\setcounter{figure}{0}
\renewcommand{\thetable}{B.\arabic{table}}
\setcounter{table}{0}

## Question-Wording Experiments at Wave 1 {#numres-wave1}

```{r mean averages, include=FALSE}
#means, sd, and CI per condition, compensations
means_c <- mydata.t1 %>% 
  group_by(comp_condition) %>%
  rename(condition = comp_condition)  %>%
  summarise(mean = mean(compensation, na.rm = TRUE),
            sd = sd(compensation, na.rm = TRUE),
            n = n()) %>%
  mutate(se = sd / sqrt(n),
         lower.ci = mean - qt(1 - (0.05 / 2), n - 1) * se,
         upper.ci = mean + qt(1 - (0.05 / 2), n - 1) * se)

#means, sd, and CI per condition, war crime punishments
means_p <- mydata.t1 %>%
  group_by(punish_condition) %>%
  rename(condition = punish_condition)  %>%
  summarise(mean = mean(punishment, na.rm = TRUE),
            sd = sd(punishment, na.rm = TRUE),
            n = n()) %>%
  mutate(se = sd / sqrt(n),
         lower.ci = mean - qt(1 - (0.05 / 2), n - 1) * se,
         upper.ci = mean + qt(1 - (0.05 / 2), n - 1) * se)

#means, sd, and CI per condition, both outcomes
means <- rbind(means_c, means_p)
means <- as.data.frame(means)

#stargazer table
stargazer(means, digits = 2, summary = F,
          title = "Mean Support per Condition",
          label = "tab:means")
```


\begin{table}[ht] 
\centering 
  \caption{Mean Support per Condition (Corresponding to Figure 1).} 
  \label{tab:means} 
\small 
\begin{tabular}{lcccccc} 
\hline
\hline \\[-1.8ex] 
 & mean & sd & n & se & lower.ci & upper.ci \\ 
\midrule \\[-1.8ex] 
\multicolumn{7}{@{} l}{\underline{\textbf{Panel A: Compansation Experiment}}}\\[1mm] 
Control & $3.57$ & $1.50$ & $321$ & $0.08$ & $3.41$ & $3.74$ \\ 
Armenia & $4.56$ & $0.93$ & $340$ & $0.05$ & $4.46$ & $4.66$ \\ 
Azerbaijan & $1.85$ & $1.25$ & $329$ & $0.07$ & $1.72$ & $1.99$ \\ 
Both & $3.64$ & $1.50$ & $327$ & $0.08$ & $3.47$ & $3.80$ \\ 
Int. Comm. & $3.66$ & $1.38$ & $340$ & $0.07$ & $3.52$ & $3.81$ \\[2mm] 
\multicolumn{7}{@{} l}{\underline{\textbf{Panel B: Punishment Experiment}}}\\[1mm] 
Control & $4.66$ & $0.87$ & $409$ & $0.04$ & $4.57$ & $4.74$ \\ 
Armenia & $4.90$ & $0.46$ & $417$ & $0.02$ & $4.86$ & $4.95$ \\ 
Azerbaijan & $2.52$ & $1.63$ & $413$ & $0.08$ & $2.36$ & $2.67$ \\ 
Both & $4.02$ & $1.39$ & $418$ & $0.07$ & $3.89$ & $4.16$  \\ 
\hline 
\hline \\[-1.8ex] 
\end{tabular} 
\end{table} 
\vspace{5mm}


```{r effects wave 1, include=FALSE}
# unstandardized ATEs
lm_c.t1 <- lm(compensation ~ comp_condition, data = mydata.t1)
summary(lm_c.t1)
lm_p.t1 <- lm(punishment ~ punish_condition, data = mydata.t1)
summary(lm_p.t1)

# standardized ATEs
lm_c.beta.t1 <- lm(scale(compensation) ~ comp_condition, data = mydata.t1)
summary(lm_c.beta.t1)
lm_p.beta.t1 <- lm(scale(punishment) ~ punish_condition, data = mydata.t1)
summary(lm_p.beta.t1)

# check names of coefficients
names(lm_c.t1$coefficients)
names(lm_p.t1$coefficients)

# replace names
names(lm_c.t1$coefficients)[1] <- "(intercept)"
names(lm_p.t1$coefficients)[1] <- "(intercept)"
names(lm_c.t1$coefficients)[2] <- "Armenia"
names(lm_p.t1$coefficients)[2] <- "Armenia"
names(lm_c.t1$coefficients)[3] <- "Azerbaijan"
names(lm_p.t1$coefficients)[3] <- "Azerbaijan"
names(lm_c.t1$coefficients)[4] <- "Both"
names(lm_p.t1$coefficients)[4] <- "Both"
names(lm_c.t1$coefficients)[5] <- "IC"
names(lm_c.beta.t1$coefficients)[1] <- "(intercept)"
names(lm_p.beta.t1$coefficients)[1] <- "(intercept)"
names(lm_c.beta.t1$coefficients)[2] <- "Armenia"
names(lm_p.beta.t1$coefficients)[2] <- "Armenia"
names(lm_c.beta.t1$coefficients)[3] <- "Azerbaijan"
names(lm_p.beta.t1$coefficients)[3] <- "Azerbaijan"
names(lm_c.beta.t1$coefficients)[4] <- "Both"
names(lm_p.beta.t1$coefficients)[4] <- "Both"
names(lm_c.beta.t1$coefficients)[5] <- "IC"
```

```{r results table wave 1, echo=FALSE, results='asis', message=FALSE}
stargazer(lm_c.t1, lm_c.beta.t1, lm_p.t1, lm_p.beta.t1,
          title = "Identified Effects of Intergroup Bias on Support for Peace Provisions.",
          model.numbers = F,
          ci = T,
          omit.stat = c("ser", "f"),
          type = 'latex',         
          header = FALSE,
          font.size = "small",
          label = "tab:results1",          
          star.char = c("*", "**", "***"),
          star.cutoffs = c(.05, .01, .001),
          notes = c("Cell entries are OLS coefficients with confidence intervals (CIs) in parentheses."),
          notes.append = T)

```


\newpage

## Long-term Effects {#numres-lt}

```{r mean averages panel, include=FALSE}
#means, sd, and CI per condition, compensations
means_wave1_c <- mypanel %>% 
  group_by(comp_condition) %>%
  rename(condition = comp_condition)  %>%
  summarise(mean = mean(compensation.t1, na.rm = TRUE),
            sd = sd(compensation.t1, na.rm = TRUE),
            n = n())
means_wave1_c <- as.data.frame(means_wave1_c)
stargazer(means_wave1_c, digits = 2, summary = F)

means_wave2_c <- mypanel %>% 
  group_by(comp_condition) %>%
  rename(condition = comp_condition)  %>%
  summarise(mean = mean(compensation.t2, na.rm = TRUE),
            sd = sd(compensation.t2, na.rm = TRUE),
            n = n()) 
means_wave2_c <- as.data.frame(means_wave2_c)
stargazer(means_wave2_c, digits = 2, summary = F)

#means, sd, and CI per condition, war crime punishments
means_wave1_p <- mypanel %>% 
  group_by(punish_condition) %>%
  rename(condition = punish_condition)  %>%
  summarise(mean = mean(punishment.t1, na.rm = TRUE),
            sd = sd(punishment.t1, na.rm = TRUE),
            n = n())
means_wave1_p <- as.data.frame(means_wave1_p)
stargazer(means_wave1_p, digits = 2, summary = F)

means_wave2_p <- mypanel %>% 
  group_by(punish_condition) %>%
  rename(condition = punish_condition)  %>%
  summarise(mean = mean(punishment.t2, na.rm = TRUE),
            sd = sd(punishment.t2, na.rm = TRUE),
            n = n())
means_wave2_p <- as.data.frame(means_wave2_p)
stargazer(means_wave2_p, digits = 2, summary = F)
```



\begin{table}[ht] 
\centering 
  \caption{Mean Support per Condition per Wave (Corresponding to Figure 2).} 
  \label{tab:meanspanel} 
\small 
\begin{tabular}{llcccccc}
\hline
\hline \\[-1.8ex]  
& \multicolumn{3}{c}{Wave 1} &  & \multicolumn{3}{c}{Wave 2} \\  
\cline{2-4} \cline{6-8} \\[-1.8ex]
& m       & sd      & n      &  & m       & sd      & n      \\ 
\midrule \\[-1.8ex] 
\multicolumn{8}{@{} l}{\underline{\textbf{Panel A: Compansation Experiment}}}\\[1mm]
Control & $3.95$ & $1.24$ & $75$  &     & $3.80$ & $1.30$ & $75$ \\ 
Armenia & $4.39$ & $0.96$ & $66$  &     & $4.47$ & $0.93$ & $66$ \\ 
Azerbaijan & $1.98$ & $1.32$ & $80$ &   & $1.98$ & $1.19$ & $80$ \\ 
Both & $3.76$ & $1.56$ & $71$ &         & $3.94$ & $1.32$ & $71$ \\
Int. Comm. & $3.68$ & $1.26$ & $81$ &   & $3.83$ & $1.14$ & $81$ \\[2mm]
\multicolumn{8}{@{} l}{\underline{\textbf{Panel B: Punishment Experiment}}}\\[1mm]
Control & \textbf{4.82} & $0.55$ & $101$ &   & \textbf{4.55} & $0.90$ & $101$ \\ 
Armenia & $4.85$ & $0.45$ & $85$ &    & $4.74$ & $0.69$ & $85$ \\ 
Azerbaijan & $3.20$ & $1.69$ & $96$ & & $3.04$ & $1.67$ & $96$ \\ 
Both & $4.40$ & $1.13$ & $91$ &       & $4.30$ & $1.19$ & $91$  \\ 
\hline 
\hline \\[-1.8ex] 
\multicolumn{8}{R{8.5cm}}{\textit{Note:} The sample was limited to 373 respondents who completed both Waves, resulting in different means and standard deviations compared to Table B.1 above. Means that are significantly different from each other at the 0.05 significance level are indicated in bold.} \\
\end{tabular} 
\end{table} 


```{r longterm ates, include=FALSE}
# Do the ATEs change over time? -----------------------------------------------

## Compensations --------------------------------------------------------------
lm_c_atediff <- lm(compensation ~ comp_condition + time +
                     comp_condition*time, #interaction terms
                   data = mylongpanel)

# summary with cluster-robust SEs
summary(lm_c_atediff, cluster="ID") 

# save cluster robust standard errors
cluster_se_c_atediff <- as.vector(summary(lm_c_atediff,
                                          cluster = c("ID"))$coefficients[,"Std. Error"])

# replace names
names(lm_c_atediff$coefficients)[1] <- "(intercept)"
names(lm_c_atediff$coefficients)[2] <- "Armenia"
names(lm_c_atediff$coefficients)[3] <- "Azerbaijan"
names(lm_c_atediff$coefficients)[4] <- "Both"
names(lm_c_atediff$coefficients)[5] <- "IC"
names(lm_c_atediff$coefficients)[6] <- "Time"
names(lm_c_atediff$coefficients)[7] <- "Armenia * Time" 
names(lm_c_atediff$coefficients)[8] <- "Azerbaijan * Time"
names(lm_c_atediff$coefficients)[9] <- "Both * Time"
names(lm_c_atediff$coefficients)[10] <- "IC * Time"

  
## Punishments ----------------------------------------------------------------
lm_p_atediff <- lm(punishment ~ punish_condition + time +
                     punish_condition*time, #interaction terms
                   data = mylongpanel)

# summary with cluster-robust SEs
summary(lm_p_atediff, cluster="ID") 

# save cluster robust standard errors
cluster_se_p_atediff <- as.vector(summary(lm_p_atediff,
                                          cluster = c("ID"))$coefficients[,"Std. Error"])

# replace names
names(lm_p_atediff$coefficients)[1] <- "(intercept)"
names(lm_p_atediff$coefficients)[2] <- "Armenia"
names(lm_p_atediff$coefficients)[3] <- "Azerbaijan"
names(lm_p_atediff$coefficients)[4] <- "Both"
names(lm_p_atediff$coefficients)[5] <- "Time"
names(lm_p_atediff$coefficients)[6] <- "Armenia * Time" 
names(lm_p_atediff$coefficients)[7] <- "Azerbaijan * Time"
names(lm_p_atediff$coefficients)[8] <- "Both * Time"

# get table
stargazer(lm_c_atediff, lm_p_atediff,
          se = list(cluster_se_c_atediff, cluster_se_p_atediff),
          title = "Do Treatment Effects Change over Time?",
          model.numbers = F,
          dep.var.labels = c("Compensation", "Punishment"),
          omit.stat = c("ser", "f"),
          type = 'latex',         
          header = FALSE,
          font.size = "small",
          label = "tab:longterm2",
          star.char = c("*", "**", "***"), 
          star.cutoffs = c(.05, .01, .001),
          notes.append = FALSE, notes.align = "l",
          notes = "* p<0.05; ** p<0.01; *** p<0.001 (two-tailed).")
```

\begin{table}[!htbp] \centering 
  \caption{Do Treatment Effects Change over Time?} 
  \label{longterm2} 
\small 
\begin{tabular}{@{\extracolsep{5pt}}R{3cm}C{3cm}C{3cm}} 
\\[-1.8ex]\hline 
\hline \\[-1.8ex] 
 & \multicolumn{2}{c}{\textit{Dependent variable:}} \\ 
\cline{2-3} 
\\[-1.8ex] & Compensation & Punishment \\ 
\hline \\[-1.8ex] 
 Armenia & 0.447$^{*}$ & 0.025 \\ 
  & (0.209) & (0.167) \\ 
  & & \\ 
 Azerbaijan & $-$1.972$^{***}$ & $-$1.624$^{***}$ \\ 
  & (0.199) & (0.161) \\ 
  & & \\ 
 Both & $-$0.186 & $-$0.426$^{**}$ \\ 
  & (0.205) & (0.164) \\ 
  & & \\ 
 IC & $-$0.268 &  \\ 
  & (0.199) &  \\ 
  & & \\ 
 Time & $-$0.147 & $-$0.267 \\ 
  & (0.202) & (0.159) \\ 
  & & \\ 
 Armenia\textasteriskcentered Time & 0.222 & 0.161 \\ 
  & (0.296) & (0.236) \\ 
  & & \\ 
 Azerbaijan\textasteriskcentered Time & 0.147 & 0.111 \\ 
  & (0.282) & (0.228) \\ 
  & & \\ 
 Both\textasteriskcentered Time & 0.330 & 0.168 \\ 
  & (0.290) & (0.232) \\ 
  & & \\ 
 IC\textasteriskcentered Time & 0.295 &  \\ 
  & (0.281) &  \\ 
  & & \\ 
 Constant & 3.947$^{***}$ & 4.822$^{***}$ \\ 
  & (0.143) & (0.113) \\ 
  & & \\ 
\hline \\[-1.8ex] 
Observations & 746 & 746 \\ 
R$^{2}$ & 0.322 & 0.265 \\ 
Adjusted R$^{2}$ & 0.314 & 0.258 \\ 
\hline 
\hline \\[-1.8ex] 
\multicolumn{3}{R{10cm}}{\textit{Note:} Cell entries are unstandardized OLS regression coefficients with clustered robust standard errors in parentheses. The dependent variable is support for peace provision, measured on a 5-point scale. Each of the 373 respondents appears in the sample twice, once in Wave 1 and once in Wave 2. Standard errors are clustered by respondent. The interaction terms are the coefficients of interest to assess long-term effects. $^{*}$p$<$0.05; $^{**}$p$<$0.01; $^{***}$p$<$0.001 (two-tailed)} \\ 
\end{tabular} 
\end{table} 

\newpage

## Conditional Effects {#heterogeneity}

```{r cate gender, include=FALSE}
### Compensations
CATE_c_gender <- lm(compensation ~ comp_condition * female, mydata.t1)
summary(CATE_c_gender)

### Punishments
CATE_p_gender <- lm(punishment ~ punish_condition * female, mydata.t1)
summary(CATE_p_gender)

# replace names
names(CATE_c_gender$coefficients)[1] <- "(intercept)"
names(CATE_c_gender$coefficients)[2] <- "Armenia"
names(CATE_c_gender$coefficients)[3] <- "Azerbaijan"
names(CATE_c_gender$coefficients)[4] <- "Both"
names(CATE_c_gender$coefficients)[5] <- "IC"
names(CATE_c_gender$coefficients)[6] <- "Female (vs. male)"
names(CATE_c_gender$coefficients)[7] <- "Armenia*Female" 
names(CATE_c_gender$coefficients)[8] <- "Azerbaijan*Female"
names(CATE_c_gender$coefficients)[9] <- "Both*Female"
names(CATE_c_gender$coefficients)[10] <- "IC*Female"

names(CATE_p_gender$coefficients)[1] <- "(intercept)"
names(CATE_p_gender$coefficients)[2] <- "Armenia"
names(CATE_p_gender$coefficients)[3] <- "Azerbaijan"
names(CATE_p_gender$coefficients)[4] <- "Both"
names(CATE_p_gender$coefficients)[5] <- "Female (vs. male)"
names(CATE_p_gender$coefficients)[6] <- "Armenia*Female" 
names(CATE_p_gender$coefficients)[7] <- "Azerbaijan*Female"
names(CATE_p_gender$coefficients)[8] <- "Both*Female"
```

```{r cate table gender, echo=FALSE, results='asis', message=FALSE}
# get table
stargazer(CATE_c_gender, CATE_p_gender,
          title = "Does Gender Moderate the Treatment Effects?",
          model.numbers = F,
          dep.var.labels = c("Compensation", "Punishment"),
          omit.stat = c("ser", "f"),
          type = 'latex',         
          header = FALSE,
          single.row = TRUE,
          table.placement = "h",
          font.size = "small",
          label = "tab:categender",
          star.char = c("*", "**", "***"), 
          star.cutoffs = c(.05, .01, .001),
          notes.append = T, notes.align = "l")
```

\vspace{3.5cm}


```{r cate age, include=FALSE}
### Compensations
CATE_c_age <- lm(compensation ~ comp_condition * age, mydata.t1)
summary(CATE_c_age)

### Punishments
CATE_p_age <- lm(punishment ~ punish_condition * age, mydata.t1)
summary(CATE_p_age)

# replace names
names(CATE_c_age$coefficients)[1] <- "(intercept)"
names(CATE_c_age$coefficients)[2] <- "Armenia"
names(CATE_c_age$coefficients)[3] <- "Azerbaijan"
names(CATE_c_age$coefficients)[4] <- "Both"
names(CATE_c_age$coefficients)[5] <- "IC"
names(CATE_c_age$coefficients)[6] <- "Age (vs. male)"
names(CATE_c_age$coefficients)[7] <- "Armenia*Age" 
names(CATE_c_age$coefficients)[8] <- "Azerbaijan*Age"
names(CATE_c_age$coefficients)[9] <- "Both*Age"
names(CATE_c_age$coefficients)[10] <- "IC*Age"

names(CATE_p_age$coefficients)[1] <- "(intercept)"
names(CATE_p_age$coefficients)[2] <- "Armenia"
names(CATE_p_age$coefficients)[3] <- "Azerbaijan"
names(CATE_p_age$coefficients)[4] <- "Both"
names(CATE_p_age$coefficients)[5] <- "Age (vs. male)"
names(CATE_p_age$coefficients)[6] <- "Armenia*Age" 
names(CATE_p_age$coefficients)[7] <- "Azerbaijan*Age"
names(CATE_p_age$coefficients)[8] <- "Both*Age"
```

```{r cate table age, echo=FALSE, results='asis', message=FALSE}
# get table
stargazer(CATE_c_age, CATE_p_age,
          title = "Does Age Moderate the Treatment Effects?",
          model.numbers = F,
          dep.var.labels = c("Compensation", "Punishment"),
          omit.stat = c("ser", "f"),
          type = 'latex',         
          header = FALSE,
          single.row = TRUE,
          table.placement = "h",
          font.size = "small",
          label = "tab:cateage",
          star.char = c("*", "**", "***"), 
          star.cutoffs = c(.05, .01, .001),
          notes.append = T, notes.align = "l")
```

\vspace{3.5cm}

```{r cate education, include=FALSE}
### Compensations
CATE_c_edu <- lm(compensation ~ comp_condition * edu_2, mydata.t1)
summary(CATE_c_edu)

### Punishments
CATE_p_edu <- lm(punishment ~ punish_condition * edu_2, mydata.t1)
summary(CATE_p_edu)

# replace names
names(CATE_c_edu$coefficients)[1] <- "(intercept)"
names(CATE_c_edu$coefficients)[2] <- "Armenia"
names(CATE_c_edu$coefficients)[3] <- "Azerbaijan"
names(CATE_c_edu$coefficients)[4] <- "Both"
names(CATE_c_edu$coefficients)[5] <- "IC"
names(CATE_c_edu$coefficients)[6] <- "Bachelor's Degree or Higher"
names(CATE_c_edu$coefficients)[7] <- "Armenia*Bachelor's or Higher" 
names(CATE_c_edu$coefficients)[8] <- "Azerbaijan*Bachelor's or Higher"
names(CATE_c_edu$coefficients)[9] <- "Both*Bachelor's or Higher"
names(CATE_c_edu$coefficients)[10] <- "IC*Bachelor's or Higher"

names(CATE_p_edu$coefficients)[1] <- "(intercept)"
names(CATE_p_edu$coefficients)[2] <- "Armenia"
names(CATE_p_edu$coefficients)[3] <- "Azerbaijan"
names(CATE_p_edu$coefficients)[4] <- "Both"
names(CATE_p_edu$coefficients)[5] <- "Bachelor's Degree or Higher"
names(CATE_p_edu$coefficients)[6] <- "Armenia*Bachelor's or Higher" 
names(CATE_p_edu$coefficients)[7] <- "Azerbaijan*Bachelor's or Higher"
names(CATE_p_edu$coefficients)[8] <- "Both*Bachelor's or Higher"
```

```{r cate table edu, echo=FALSE, results='asis', message=FALSE}
# get table
stargazer(CATE_c_edu, CATE_p_edu,
          title = "Does Educational Status Moderate the Treatment Effects?",
          model.numbers = F,
          dep.var.labels = c("Compensation", "Punishment"),
          omit.stat = c("ser", "f"),
          type = 'latex',         
          header = FALSE,
          single.row = TRUE, 
          font.size = "small",
          table.placement = "h",
          label = "tab:cateedu",
          star.char = c("*", "**", "***"), 
          star.cutoffs = c(.05, .01, .001),
          notes.append = T, notes.align = "l")
```

\vspace{3.5cm}

```{r cate employment, include=FALSE}
### Compensations
CATE_c_empl <- lm(compensation ~ comp_condition * unemployed, mydata.t1)
summary(CATE_c_empl)

### Punishments
CATE_p_empl <- lm(punishment ~ punish_condition * unemployed, mydata.t1)
summary(CATE_p_empl)

# replace names
names(CATE_c_empl$coefficients)[1] <- "(intercept)"
names(CATE_c_empl$coefficients)[2] <- "Armenia"
names(CATE_c_empl$coefficients)[3] <- "Azerbaijan"
names(CATE_c_empl$coefficients)[4] <- "Both"
names(CATE_c_empl$coefficients)[5] <- "IC"
names(CATE_c_empl$coefficients)[6] <- "Unemployed (vs. male)"
names(CATE_c_empl$coefficients)[7] <- "Armenia*Unemployed" 
names(CATE_c_empl$coefficients)[8] <- "Azerbaijan*Unemployed"
names(CATE_c_empl$coefficients)[9] <- "Both*Unemployed"
names(CATE_c_empl$coefficients)[10] <- "IC*Unemployed"

names(CATE_p_empl$coefficients)[1] <- "(intercept)"
names(CATE_p_empl$coefficients)[2] <- "Armenia"
names(CATE_p_empl$coefficients)[3] <- "Azerbaijan"
names(CATE_p_empl$coefficients)[4] <- "Both"
names(CATE_p_empl$coefficients)[5] <- "Unemployed (vs. male)"
names(CATE_p_empl$coefficients)[6] <- "Armenia*Unemployed" 
names(CATE_p_empl$coefficients)[7] <- "Azerbaijan*Unemployed"
names(CATE_p_empl$coefficients)[8] <- "Both*Unemployed"
```

```{r cate table empl, echo=FALSE, results='asis', message=FALSE}
# get table
stargazer(CATE_c_empl, CATE_p_empl,
          title = "Does Unemployment Moderate the Treatment Effects?",
          model.numbers = F,
          dep.var.labels = c("Compensation", "Punishment"),
          omit.stat = c("ser", "f"),
          type = 'latex',         
          header = FALSE,
          single.row = TRUE,
          table.placement = "h",
          font.size = "small",
          label = "tab:cateempl",
          star.char = c("*", "**", "***"), 
          star.cutoffs = c(.05, .01, .001),
          notes.append = T, notes.align = "l")
```


```{r cate Baku, include=FALSE}
### Compensations
CATE_c_Baku <- lm(compensation ~ comp_condition * living, mydata.t1)
summary(CATE_c_Baku)

### Punishments
CATE_p_Baku <- lm(punishment ~ punish_condition * living, mydata.t1)
summary(CATE_p_Baku)

# replace names
names(CATE_c_Baku$coefficients)[1] <- "(intercept)"
names(CATE_c_Baku$coefficients)[2] <- "Armenia"
names(CATE_c_Baku$coefficients)[3] <- "Azerbaijan"
names(CATE_c_Baku$coefficients)[4] <- "Both"
names(CATE_c_Baku$coefficients)[5] <- "IC"
names(CATE_c_Baku$coefficients)[6] <- "Living in Baku"
names(CATE_c_Baku$coefficients)[7] <- "Armenia*Living in Baku" 
names(CATE_c_Baku$coefficients)[8] <- "Azerbaijan*Living in Baku"
names(CATE_c_Baku$coefficients)[9] <- "Both*Living in Baku"
names(CATE_c_Baku$coefficients)[10] <- "IC*Living in Baku"

names(CATE_p_Baku$coefficients)[1] <- "(intercept)"
names(CATE_p_Baku$coefficients)[2] <- "Armenia"
names(CATE_p_Baku$coefficients)[3] <- "Azerbaijan"
names(CATE_p_Baku$coefficients)[4] <- "Both"
names(CATE_p_Baku$coefficients)[5] <- "Living in Baku"
names(CATE_p_Baku$coefficients)[6] <- "Armenia*Living in Baku" 
names(CATE_p_Baku$coefficients)[7] <- "Azerbaijan*Living in Baku"
names(CATE_p_Baku$coefficients)[8] <- "Both*Living in Baku"
```

```{r cate table Baku, echo=FALSE, results='asis', message=FALSE}
# get table
stargazer(CATE_c_Baku, CATE_p_Baku,
          title = "Does Living in Baku Moderate the Treatment Effects?",
          model.numbers = F,
          dep.var.labels = c("Compensation", "Punishment"),
          omit.stat = c("ser", "f"),
          type = 'latex',         
          header = FALSE,
          single.row = TRUE,
          font.size = "small",
          table.placement = "h",
          label = "tab:catebaku",
          star.char = c("*", "**", "***"), 
          star.cutoffs = c(.05, .01, .001),
          notes.append = T, notes.align = "l")
```


```{r cate social media, include=FALSE}
### Compensations
CATE_c_media <- lm(compensation ~ comp_condition * media_5, mydata.t1)
summary(CATE_c_media)

### Punishments
CATE_p_media <- lm(punishment ~ punish_condition * media_5, mydata.t1)
summary(CATE_p_media)

# replace names
names(CATE_c_media$coefficients)[1] <- "(intercept)"
names(CATE_c_media$coefficients)[2] <- "Armenia"
names(CATE_c_media$coefficients)[3] <- "Azerbaijan"
names(CATE_c_media$coefficients)[4] <- "Both"
names(CATE_c_media$coefficients)[5] <- "IC"
names(CATE_c_media$coefficients)[6] <- "Social media usage"
names(CATE_c_media$coefficients)[7] <- "Armenia*Social media" 
names(CATE_c_media$coefficients)[8] <- "Azerbaijan*Social media"
names(CATE_c_media$coefficients)[9] <- "Both*Social media"
names(CATE_c_media$coefficients)[10] <- "IC*Social media"

names(CATE_p_media$coefficients)[1] <- "(intercept)"
names(CATE_p_media$coefficients)[2] <- "Armenia"
names(CATE_p_media$coefficients)[3] <- "Azerbaijan"
names(CATE_p_media$coefficients)[4] <- "Both"
names(CATE_p_media$coefficients)[5] <- "Social media usage"
names(CATE_p_media$coefficients)[6] <- "Armenia*Social media" 
names(CATE_p_media$coefficients)[7] <- "Azerbaijan*Social media"
names(CATE_p_media$coefficients)[8] <- "Both*Social media"
```

```{r cate table sm, echo=FALSE, results='asis', message=FALSE}
# get table
stargazer(CATE_c_media, CATE_p_media,
          title = "Does Social Media Usage Moderate the Treatment Effects?",
          model.numbers = F,
          dep.var.labels = c("Compensation", "Punishment"),
          omit.stat = c("ser", "f"),
          type = 'latex',         
          header = FALSE,
          single.row = TRUE,
          font.size = "small",
          table.placement = "b",
          label = "tab:catesm",
          star.char = c("*", "**", "***"), 
          star.cutoffs = c(.05, .01, .001),
          notes.append = T, notes.align = "l")
```


```{r cate empathy, include=FALSE}
### Compensations
CATE_c_empathy <- lm(compensation ~ comp_condition * empathy, mydata.t1)

### Punishments
CATE_p_empathy <- lm(punishment ~ punish_condition * empathy, mydata.t1)

# replace names
names(CATE_c_empathy$coefficients)[1] <- "(intercept)"
names(CATE_c_empathy$coefficients)[2] <- "Armenia"
names(CATE_c_empathy$coefficients)[3] <- "Azerbaijan"
names(CATE_c_empathy$coefficients)[4] <- "Both"
names(CATE_c_empathy$coefficients)[5] <- "IC"
names(CATE_c_empathy$coefficients)[6] <- "Outgroup Empathy"
names(CATE_c_empathy$coefficients)[7] <- "Armenia*Outgroup Empathy" 
names(CATE_c_empathy$coefficients)[8] <- "Azerbaijan*Outgroup Empathy"
names(CATE_c_empathy$coefficients)[9] <- "Both*Outgroup Empathy"
names(CATE_c_empathy$coefficients)[10] <- "IC*Outgroup Empathy"

names(CATE_p_empathy$coefficients)[1] <- "(intercept)"
names(CATE_p_empathy$coefficients)[2] <- "Armenia"
names(CATE_p_empathy$coefficients)[3] <- "Azerbaijan"
names(CATE_p_empathy$coefficients)[4] <- "Both"
names(CATE_p_empathy$coefficients)[5] <- "Outgroup Empathy"
names(CATE_p_empathy$coefficients)[6] <- "Armenia*Outgroup Empathy" 
names(CATE_p_empathy$coefficients)[7] <- "Azerbaijan*Outgroup Empathy"
names(CATE_p_empathy$coefficients)[8] <- "Both*Outgroup Empathy"
```

```{r cate table emp, echo=FALSE, results='asis', message=FALSE}
# get table
stargazer(CATE_c_empathy, CATE_p_empathy,
          title = "Does Outgroup Empathy Moderate the Treatment Effects?",
          model.numbers = F,
          dep.var.labels = c("Compensation", "Punishment"),
          omit.stat = c("ser", "f"),
          type = 'latex',         
          header = FALSE,
          single.row = TRUE,
          font.size = "small",
          table.placement = "b",
          label = "tab:cateemp",
          star.char = c("*", "**", "***"), 
          star.cutoffs = c(.05, .01, .001),
          notes.append = T, notes.align = "l")
```

\clearpage

\newpage

```{r address missingness, include=FALSE}
mydata.t1$education[is.na(mydata.t1$education)] <- mean(mydata.t1$education, na.rm = T)
```


# Assumption Checks {#ass}

\renewcommand{\thefigure}{C.\arabic{figure}}
\setcounter{figure}{0}
\renewcommand{\thetable}{C.\arabic{table}}
\setcounter{table}{0}

## Balance Checks for Wave 1 Experiments {#bal}

As one can see in Tables \ref{tab:balance1} and \ref{tab:balance2}, most demographic and attitudinal covariates across the experimental groups in both experiments were well-balanced. There are a few remaining imbalances, however. Therefore, in the robustness section below, we re-run our OLS regressions but now controlling for a range of covariates. Our results remain substantively the same.

\vspace{5mm}

```{r balace comp, include=FALSE}
balance.c <- multinom(comp_condition ~ female + age + as.numeric(education) + unemployed +
                        vote + poltrust + prejudice + empathy, 
                      data = mydata.t1)
summary(balance.c)
```

```{r balance table1, echo=FALSE, results='asis', message=FALSE}
stargazer(balance.c,
          covariate.labels = c("Gender", "Age", "Education", "Unemployed", "Vote", "Pol. Trust", "Prejudice", "Outgroup Empathy"),
          model.numbers = F,
          title = "Balance Tests for Monetary Compensations Experiment.",
          type = 'latex', 
          add.lines = list(c("Observations", "1529", "1529", "1529", "1529", "1529")),
          header = FALSE,
          #omit.stat = "all",
          font.size = "small",
          label = "tab:balance1",          
          star.char = c("*", "**", "***"),
          star.cutoffs = c(.05, .01, .001),
          notes = "Multinomial logistic regression results.",
          notes.append = T)
```

```{r, include=FALSE}
# Compare the our model with the "Only intercept" model
# balance.c.0 <- multinom(comp_condition ~ 1, data = mydata.t1) 
# anova(balance.c.0,balance.c) #to do so, get rid of missingness on covariates.
```


```{r balance punish, include=FALSE}
balance.p <- multinom(punish_condition ~ female + age + as.numeric(education) + unemployed +
                        vote + poltrust + prejudice + empathy, 
                      data = mydata.t1)
summary(balance.p)
```

```{r balance table2, echo=FALSE, results='asis', message=FALSE}
stargazer(balance.p,
          covariate.labels = c("Gender", "Age", "Education", "Unemployed", "Vote", "Pol. Trust", "Prejudice", "Outgroup Empathy"),
          model.numbers = F,
          title = "Balance Tests for War Crime Punishments Experiment.",
          type = 'latex',       
          add.lines = list(c("Observations", "1529", "1529", "1529", "1529")),
          header = FALSE,
          #omit.stat = "all",
          font.size = "small",
          label = "tab:balance2",          
          star.char = c("*", "**", "***"),
          star.cutoffs = c(.05, .01, .001),
          notes = "Multinomial logistic regression results.",
          notes.append = T)
```

```{r, include=FALSE}
# Compare the our model with the "Only intercept" model
# balance.c.0 <- multinom(comp_condition ~ 1, data = mydata.t1) 
# anova(balance.c.0,balance.c) #to do so, get rid of missingness on covariates.
```


\clearpage

## Attrition Check for Wave 2 Experiments {#att}

```{r p_report function, include=FALSE}
p_report <- function(x){

      # create an object "e" which contains x, the p value you are reporting,
      # rounded to 3 decimal places

  e <- round(x, digits = 3)

      # the next two lines of code prints "< .001" if x is indeed less than .001

  if (x < 0.001)
    print(paste0("<", " ", ".001"))

      # if x is greater than .001, the code below prints the object "e"
      # with an "=" sign, and with the preceeding zero removed

  else
    print(
      paste0("=",
                 " ",
                 sub("^(-?)0.", "\\1.", sprintf("%.3f",e))))

}
```


```{r attrition w1, include=FALSE}
attrition.t1 <- readRDS("data/T1-attrition.rds")

# Compensations 
attrition.t1$attrition.c <- ifelse(attrition.t1$compensation=="-99", 1, 0)
summary(as.factor(attrition.t1$attrition.c))
prop.table(table(attrition.t1$attrition.c, attrition.t1$comp_condition), 2)*100
c <- chisq.test(attrition.t1$comp_condition, attrition.t1$attrition.c, correct=FALSE)
c

# Punishments
attrition.t1$attrition.p <- ifelse(attrition.t1$punishment=="-99", 1, 0)
summary(as.factor(attrition.t1$attrition.p))
prop.table(table(attrition.t1$attrition.p, attrition.t1$punish_condition), 2)*100
p <- chisq.test(attrition.t1$punish_condition, attrition.t1$attrition.p, correct=FALSE)
p
```

In what follows, we check attrition---defined as missing outcome data---at Wave 2.\footnote{There is almost no attrition at Wave 1. At Wave 1, 39 respondents were exposed to but did not answer their question on monetary compensations and 42 respondents did not answer their assigned question on punishment for war crimes. Attrition rates were very similar across treatment arms, ranging from 0.86\% to 3.48\% in the monetary compensation conditions and from 1.89\% to 3.01\% in the war crime punishment conditions. A chi-squared test for independence revealed no significant association between treatment assignment and attrition for monetary compensations ($\chi^2$(`r c$parameter`, \textit{N} = `r length(attrition.t1$attrition.c)`) = `r round(c$statistic, 3)`, \textit{p} `r paste(p_report(c$p.value))`) nor for war crime punishments ($\chi^2$(`r p$parameter`, \textit{N} = `r length(attrition.t1$attrition.p)`) = `r round( p$statistic, 3)`, \textit{p} `r paste(p_report(p$p.value))`).}
Our sampling frame for Wave 2 was restricted to the `r mydata.t1[mydata.t1$email==1,] %>% summarise(number = n())` subjects who (1) completed the Wave 1 experiments and (2) provided a valid e-mail address. A total of `r mydata.t2 %>% summarise(number = n())` subjects completed the Wave 2 experiments (38\%).\footnote{Due to a coding error in Qualtrics, we were unable to merge the W2 data of `r mydata.t2 %>% summarise(number = n()) - mypanel %>% summarise(number = n())` respondents with their W1 data. This brings the total number of observations for the panel analysis `r mypanel %>% summarise(number = n())`.} Thus, a significant proportion did not participate in our follow-up survey which may compromise the validity of the panel study. However, three things mitigate this concern. First, we compare attrition rates across treatment arms. Table  \ref{tab:attrates} reveals that attrition rates are very similar across treatment arms.

```{r attrition, include=FALSE}
# add Wave 2 outcomes to Wave 1 dataset 
mydata.t1$compensation.t2 <- mydata.t2$compensation[match(mydata.t1$ID, mydata.t2$ID)]
mydata.t1$punishment.t2 <- mydata.t2$punishment[match(mydata.t1$ID, mydata.t2$ID)]

# add indicator whether respondent particpatated in Wave 2 or not.
mydata.t1$attrition <- is.na(mydata.t1$compensation.t2)
summary(mydata.t1$attrition)
mydata.t1$observed <- ifelse(mydata.t1$attrition==T, 0, 1)
summary(as.factor(mydata.t1$observed))

# attrition rates per treatment
proptable.c <-  prop.table(table(as.factor(mydata.t1$observed),
                                 as.factor(mydata.t1$comp_condition)), 2)
c <- chisq.test(mydata.t1$observed, mydata.t1$comp_condition, correct=FALSE)
c

proptable.p <- prop.table(table(as.factor(mydata.t1$observed),
                                as.factor(mydata.t1$punish_condition)), 2)

p <- chisq.test(mydata.t1$observed, mydata.t1$punish_condition, correct=FALSE)
p

# make table with attrition rates
proptable.c
proptable.p
```


\begin{table}[ht]
\setstretch{1.2}
\centering
\caption{Attrition Rates across Treatment Arms.} 
\label{tab:attrates}
\begin{tabular}{l R{1.5cm} C{1.5cm} C{1.5cm} C{1.5cm} C{1.5cm} C{1.5cm}}
\hline
  \hline
& & Control & Armenia & Azerbaijan & Both & IC \\ 
  \hline
\multicolumn{7}{@{} l}{\underline{\textbf{Panel A: Compansation Experiment}}}\\[1mm] 
& Attrition & 76.64\% & 80.59\%  & 75.68\%  & 78.29\%  & 76.18\% \\ 
& Observed  & 23.36\% & 19.41\%  & 24.32\%  & 21.71\%  & 23.82\% \\ \hline
\multicolumn{7}{@{} l}{\underline{\textbf{Panel B: Punishment Experiment}}}\\[1mm] 
& Attrition & 75.31\%  & 79.62\%  & 76.76\%  & 78.23\%  &  \\ 
& Observed  & 24.69\%  & 20.38\%  & 23.24\%  & 21.77\%  &  \\ \hline
\hline
\multicolumn{7}{R{11.5cm}}{\footnotesize{\textit{Note:} A chi-squared test for independence revealed no significant association between treatment assignment and attrition for monetary compensations ($\chi^2$(`r c$parameter`, \textit{N} = `r length(mydata.t1$observed)`) = `r round( c$statistic, 3)`, \textit{p} `r paste(p_report(c$p.value))`) nor for war crime punishments ($\chi^2$(`r p$parameter`, \textit{N} = `r length(mydata.t1$observed)`) = `r round(p$statistic, 3)`, \textit{p} `r paste(p_report(p$p.value))`).}} \\
\end{tabular}
\end{table}

Next, we explore attrition patterns across treatment arms. Differential attrition patterns across treatment arms related to potential outcomes might lead to biased inferences (Gerber and Green, 2021, Chapter 7). As potential outcomes can never be observed, we explore whether attrition is associated with observed covariates that may proxy potential outcomes, and whether those associations differ between the treatment groups and the control group. We do so by fitting linear probability models with robust standard errors (Tables \ref{tab:attcomp} and \ref{tab:attpunish}). The first few columns show the results within each experimental treatment arm, while the last column shows the results for the pooled sample with an interaction. Comparing the coefficients in the first few columns gives an indication of differential attrition, while the coefficients on the interaction terms give direct estimates of those differences.

Most broadly, the results suggest that attrition might be unrelated to potential outcomes. Consequently, we report unadjusted regression coefficients in the main text but as a robustness check, we compare those estimates with estimates using inverse probability weighting (Section \ref{robipw}).

```{r attrition patterns compensation, include=FALSE}
m0.c <- lm(observed ~ 
              female + age + education + 
              compensation +
              poltrust + socdistance + vote,
            data = mydata.t1[mydata.t1$comp_condition=="Control",])
summary(m0.c)

m1.c <- lm(observed ~ 
              female + age + education + 
              compensation +
              poltrust + socdistance + vote,
            data = mydata.t1[mydata.t1$comp_condition=="Armenia",])
summary(m1.c)

m2.c <- lm(observed ~ 
              female + age + education + 
              compensation +
              poltrust + socdistance + vote,
            data = mydata.t1[mydata.t1$comp_condition=="Azerbaijan",])
summary(m2.c)

m3.c <- lm(observed ~ 
              female + age + education + 
              compensation +
              poltrust + socdistance + vote,
            data = mydata.t1[mydata.t1$comp_condition=="Both",])
summary(m3.c)

m4.c <- lm(observed ~ 
              female + age + education + 
              compensation +
              poltrust + socdistance + vote,
            data = mydata.t1[mydata.t1$comp_condition=="Int. Comm.",])
summary(m4.c)

m5.c <- lm(observed ~ 
              female + age + education + 
              compensation +
              poltrust + socdistance + vote +
              comp_condition +
              female*comp_condition + age*comp_condition + education*comp_condition + 
              compensation*comp_condition +
              poltrust*comp_condition + socdistance*comp_condition + vote*comp_condition,
            data = mydata.t1)

# variable labels
varlabels <- c("female", "age", "education", 
               "support at W1",
               "pol. trust", "soc. distance", "party ID",
               "Treated: Armenia", "Treated: Azerbaijan", "Treated: Both", "Treated: IC",
               "female*Armenia","female*Azerbaijan","female*Both","female*IC",
               "age*Armenia","age*Azerbaijan","age*Both","age*IC",
               "education*Armenia","education*Azerbaijan","education*Both","education*IC",
               "support at W1*Armenia","support at W1*Azerbaijan","support at W1*Both","support at W1*IC",
               "pol. trust*Armenia","pol. trust*Azerbaijan","pol. trust*Both","pol. trust*IC",
               "soc. distance*Armenia","soc. distance*Azerbaijan","soc. distance*Both","soc. distance*IC",
               "party ID*Armenia","party ID*Azerbaijan","party ID*Both","party ID*IC",
              "(intercept)")
```



```{r attrition patterns compensation table, echo=FALSE, results='asis', message=FALSE}
# table
stargazer(m0.c, m1.c, m2.c, m3.c, m4.c, m5.c,
          title = "Attrition Patterns for Compensation Experiment.",
          label = "tab:attcomp",   
          covariate.labels = varlabels, 
          dep.var.caption = "Attrition Patterns Within and Across Treatment Arms",
          dep.var.labels = "",
          model.numbers = T,
          column.labels = c("Control", "Outgroup", "Ingroup", "Both", "IC", "Pooled"),
          header = FALSE,
          single.row = TRUE, float.env = "sidewaystable",          
          omit.stat = c("ser", "f", "rsq", "adj.rsq"),
          type = 'latex',         
          font.size = "footnotesize",
          digits = 2,
          star.char = c("*", "**", "***"),
          star.cutoffs = c(.05, .01, .001),
          notes = "Estimates from linear probability models.",
          notes.append = T)
```


```{r attrition patterns punishment, include=FALSE}
m0.p <- lm(observed ~ 
              female + age + education + 
              punishment +
              poltrust + socdistance + vote,
            data = mydata.t1[mydata.t1$punish_condition=="Control",])

m1.p <- lm(observed ~ 
              female + age + education + 
              punishment +
              poltrust + socdistance + vote,
            data = mydata.t1[mydata.t1$punish_condition=="Armenia",])

m2.p <- lm(observed ~ 
              female + age + education + 
              punishment +
              poltrust + socdistance + vote,
            data = mydata.t1[mydata.t1$punish_condition=="Azerbaijan",])

m3.p <- lm(observed ~ 
              female + age + education + 
              punishment +
              poltrust + socdistance + vote,
            data = mydata.t1[mydata.t1$punish_condition=="Both",])

m4.p <- lm(observed ~ 
             female + age + education + 
             punishment +
             poltrust + socdistance + vote +
             punish_condition +
             female*punish_condition + 
             age*punish_condition + 
             education*punish_condition + 
             punishment*punish_condition +
             poltrust*punish_condition + 
             socdistance*punish_condition + 
             vote*punish_condition,
            data = mydata.t1)

# variable labels
varlabels <- c("female", "age", "education", 
               "support at W1",
               "pol. trust", "soc. distance", "party ID",
               "Treated: Armenia", "Treated: Azerbaijan", "Treated: Both",
               "female*Armenia","female*Azerbaijan","female*Both",
               "age*Armenia","age*Azerbaijan","age*Both",
               "education*Armenia","education*Azerbaijan","education*Both",
               "support at W1*Armenia","support at W1*Azerbaijan","support at W1*Both",
               "pol. trust*Armenia","pol. trust*Azerbaijan","pol. trust*Both",
               "soc. distance*Armenia","soc. distance*Azerbaijan","soc. distance*Both",
               "party ID*Armenia","party ID*Azerbaijan","party ID*Both",
              "(intercept)")
```


```{r attrition patterns punishment table, echo=FALSE, results='asis', message=FALSE}
stargazer(m0.p, m1.p, m2.p, m3.p, m4.p,
          title = "Attrition Patterns for Punishment Experiment.",
          label = "tab:attpunish",   
          covariate.labels = varlabels, 
          dep.var.caption = "Attrition Patterns Within and Across Treatment Arms",
          dep.var.labels = "",
          model.numbers = T,
          column.labels = c("Control", "Outgroup", "Ingroup", "Both", "Pooled"),
          header = FALSE,
          single.row = TRUE, float.env = "sidewaystable",          
          omit.stat = c("ser", "f", "rsq", "adj.rsq"),
          type = 'latex',         
          font.size = "footnotesize",
          digits = 2,
          star.char = c("*", "**", "***"),
          star.cutoffs = c(.05, .01, .001),
          notes = "Estimates from linear probability models.",
          notes.append = T)
```


\clearpage

# Robustness Tests {#rob}

\renewcommand{\thefigure}{D.\arabic{figure}}
\setcounter{figure}{0}
\renewcommand{\thetable}{D.\arabic{table}}
\setcounter{table}{0}

## Replication of Main Results (Wave 1), with Control Variables {#robcon}

We re-run our OLS regressions but now controlling for a set of covariates. In all regressions, we include a set of demographic, political, social, and war-related variables. Demographic variables include gender, age, education, employment status, and a dummy indicating current residency in Baku. Political variables include political trust and party identification. Outgroup empathy is used as a measure of social, intergroup attitudes and social media usage is included given our sampling strategy. Finally, we also examine the role of exposure to violence in the 2020 war and threat perceptions. For more details on the measurement of the covariates, see the questionnaires at \href{ https://osf.io/x4trk/?view_only=e5c07f9348bb4f448d5aa84b71e12a34}{https://osf.io/x4trk/}.

The results are consistent with those reported in the main paper: Public support for reparations and war crime punishments increases when Armenia (i.e., the outgroup) pays or stand trial but decreases when Azerbaijan (i.e., the ingroup) does so. Tables \ref{tab:controls} further shows some of the correlates of support for reparations and war crime punishments. Older people are more supportive of compensations for victims, whereas more educated respondents are more supportive of punishments for war crimes. Employment status and urbanization are not related to support for any of the peace provisions. Second, voting for the ruling New Azerbaijan Party--the political party of the current President of Azerbaijan--increases support for monetary compensations but decreases support for war crime punishment. Political trust decreases support for monetary compensations. Finally, outgroup empathy increases support for both peace provisions, threat perceptions are correlated with more support for war crime punishment, and conflict exposure is not significantly related to any of the provisions.


```{r effects w. controls wave 1, include=FALSE}
# unstandardized ATEs
lm_c.t1.c <- lm(compensation ~ comp_condition + 
                  female + age + as.numeric(education) + unemployed + living + #socio-dems
                  media_5 +
                  poltrust + vote + #political variables
                  exposure_2020 + threat + empathy, #war-related variables 
                data = mydata.t1)
lm_p.t1.c <- lm(punishment ~ punish_condition + 
                  female + age + as.numeric(education) + unemployed + living + #socio-dems
                  media_5 +
                  poltrust + vote + #political variables
                  exposure_2020 + threat + empathy, #war-related variables 
                data = mydata.t1)

# standardized ATEs
lm_c.beta.t1.c <- lm(scale(compensation) ~ comp_condition + 
                       female + age + as.numeric(education) + unemployed + living + #socio-dems
                       media_5 +
                       poltrust + vote + #political variables
                       exposure_2020 + threat + empathy, #war-related variables 
                     data = mydata.t1)
lm_p.beta.t1.c <- lm(scale(punishment) ~ punish_condition + 
                       female + age + as.numeric(education) + unemployed + living + #socio-dems
                       media_5 +
                       poltrust + vote + #political variables
                       exposure_2020 + threat + empathy, #war-related variables
                     data = mydata.t1)

# replace names
names(lm_c.t1.c$coefficients)[1] <- "(intercept)"
names(lm_p.t1.c$coefficients)[1] <- "(intercept)"
names(lm_c.t1.c$coefficients)[2] <- "Armenia"
names(lm_p.t1.c$coefficients)[2] <- "Armenia"
names(lm_c.t1.c$coefficients)[3] <- "Azerbaijan"
names(lm_p.t1.c$coefficients)[3] <- "Azerbaijan"
names(lm_c.t1.c$coefficients)[4] <- "Both"
names(lm_p.t1.c$coefficients)[4] <- "Both"
names(lm_c.t1.c$coefficients)[5] <- "IC"
names(lm_c.beta.t1.c$coefficients)[1] <- "(intercept)"
names(lm_p.beta.t1.c$coefficients)[1] <- "(intercept)"
names(lm_c.beta.t1.c$coefficients)[2] <- "Armenia"
names(lm_p.beta.t1.c$coefficients)[2] <- "Armenia"
names(lm_c.beta.t1.c$coefficients)[3] <- "Azerbaijan"
names(lm_p.beta.t1.c$coefficients)[3] <- "Azerbaijan"
names(lm_c.beta.t1.c$coefficients)[4] <- "Both"
names(lm_p.beta.t1.c$coefficients)[4] <- "Both"
names(lm_c.beta.t1.c$coefficients)[5] <- "IC"

# variable labels
varlabels <- c("Armenia", "Azerbaijan", "Both", "IC",
              "Female", "Age (in years)", "Bachelor's or Higher", "Unemployed", "Live in Baku", 
              "Social Media",
              "Pol. Trust", "Party ID",
              "War Exposure", "Threat Perceptions", "Outgroup Empathy",
              "(intercept)")
```

```{r results w. controls table wave 1, echo=FALSE, results='asis', message=FALSE}
stargazer(lm_c.t1.c, lm_c.beta.t1.c, lm_p.t1.c, lm_p.beta.t1.c,
          title = "replication of Table B.2, Including Controls.",
          covariate.labels = varlabels, 
          model.numbers = T,
          ci = T,
          omit.stat = c("ser", "f"),
          type = 'latex',         
          header = FALSE,
          font.size = "small",
          label = "tab:controls",          
          star.char = c("*", "**", "***"),
          star.cutoffs = c(.05, .01, .001),
          notes = c("* p<0.05; ** p<0.01; *** p<0.001"),
          notes.append = F)
```

\newpage
## Replication of Main Results (Wave 1), with Robust Confidence Intervals

```{r effects w. robust se wave 1, include=FALSE}
# unstandardized ATEs
lm_c.t1.r <- lm(compensation ~ comp_condition,
                data = mydata.t1)
lm_p.t1.r <- lm(punishment ~ punish_condition, 
                data = mydata.t1)

# standardized ATEs
# scale outcome variables first ...
mydata.t1$compensation_scaled <- scale(mydata.t1$compensation)
mydata.t1$punishment_scaled <- scale(mydata.t1$punishment)
# ... and re-run the regressions ...
lm_c.beta.t1.r <- lm(compensation_scaled ~ comp_condition, data = mydata.t1)
lm_p.beta.t1.r <- lm(punishment_scaled ~ punish_condition, data = mydata.t1)
# ... because the startprep function (which transforms the lm fits into lm_robust fits) won't work with scale() integrated into the lm regression.

# replace names
names(lm_c.t1.r$coefficients)[1] <- "(intercept)"
names(lm_p.t1.r$coefficients)[1] <- "(intercept)"
names(lm_c.t1.r$coefficients)[2] <- "Armenia"
names(lm_p.t1.r$coefficients)[2] <- "Armenia"
names(lm_c.t1.r$coefficients)[3] <- "Azerbaijan"
names(lm_p.t1.r$coefficients)[3] <- "Azerbaijan"
names(lm_c.t1.r$coefficients)[4] <- "Both"
names(lm_p.t1.r$coefficients)[4] <- "Both"
names(lm_c.t1.r$coefficients)[5] <- "IC"
names(lm_c.beta.t1.r$coefficients)[1] <- "(intercept)"
names(lm_p.beta.t1.r$coefficients)[1] <- "(intercept)"
names(lm_c.beta.t1.r$coefficients)[2] <- "Armenia"
names(lm_p.beta.t1.r$coefficients)[2] <- "Armenia"
names(lm_c.beta.t1.r$coefficients)[3] <- "Azerbaijan"
names(lm_p.beta.t1.r$coefficients)[3] <- "Azerbaijan"
names(lm_c.beta.t1.r$coefficients)[4] <- "Both"
names(lm_p.beta.t1.r$coefficients)[4] <- "Both"
names(lm_c.beta.t1.r$coefficients)[5] <- "IC"
```

```{r results w. robust ci table wave 1, echo=FALSE, results='asis', message=FALSE}
stargazer(lm_c.t1.r, lm_c.beta.t1.r, lm_p.t1.r, lm_p.beta.t1.r,
          ci.custom = starprep(lm_c.t1, lm_p.t1, lm_c.beta.t1.r, lm_p.beta.t1.r, 
                               stat = "ci"),
          title = "Replication of Table B.2, with Robust Confidence Intervals.",
          dep.var.labels = c("compensation", "scale(compensation)", "punishment", "scale(punishment)"),
          model.numbers = T,
          omit.stat = c("ser", "f"),
          type = 'latex',         
          header = FALSE,
          font.size = "small",
          label = "tab:robustci",          
          star.char = c("*", "**", "***"),
          star.cutoffs = c(.05, .01, .001),
          notes = c("* p<0.05; ** p<0.01; *** p<0.001"),
          notes.append = F)
```

\newpage


## Replication of Main Results (Wave 1), without English-Speaking Respondents

```{r effects az-responses only, include=FALSE}
# unstandardized ATEs
lm_c.t1.az <- lm(compensation ~ comp_condition, 
                 data = mydata.t1[mydata.t1$AZLanguage==1,])
lm_p.t1.az <- lm(punishment ~ punish_condition, 
                 data = mydata.t1[mydata.t1$AZLanguage==1,])

# standardized ATEs
lm_c.beta.t1.az <- lm(scale(compensation) ~ comp_condition, 
                      data = mydata.t1[mydata.t1$AZLanguage==1,])
lm_p.beta.t1.az <- lm(scale(punishment) ~ punish_condition, 
                      data = mydata.t1[mydata.t1$AZLanguage==1,])

# replace names
names(lm_c.t1.az$coefficients)[1] <- "(intercept)"
names(lm_p.t1.az$coefficients)[1] <- "(intercept)"
names(lm_c.t1.az$coefficients)[2] <- "Armenia"
names(lm_p.t1.az$coefficients)[2] <- "Armenia"
names(lm_c.t1.az$coefficients)[3] <- "Azerbaijan"
names(lm_p.t1.az$coefficients)[3] <- "Azerbaijan"
names(lm_c.t1.az$coefficients)[4] <- "Both"
names(lm_p.t1.az$coefficients)[4] <- "Both"
names(lm_c.t1.az$coefficients)[5] <- "IC"
names(lm_c.beta.t1.az$coefficients)[1] <- "(intercept)"
names(lm_p.beta.t1.az$coefficients)[1] <- "(intercept)"
names(lm_c.beta.t1.az$coefficients)[2] <- "Armenia"
names(lm_p.beta.t1.az$coefficients)[2] <- "Armenia"
names(lm_c.beta.t1.az$coefficients)[3] <- "Azerbaijan"
names(lm_p.beta.t1.az$coefficients)[3] <- "Azerbaijan"
names(lm_c.beta.t1.az$coefficients)[4] <- "Both"
names(lm_p.beta.t1.az$coefficients)[4] <- "Both"
names(lm_c.beta.t1.az$coefficients)[5] <- "IC"
```

```{r results w. az-responses only, echo=FALSE, results='asis', message=FALSE}
stargazer(lm_c.t1.az, lm_c.beta.t1.az, lm_p.t1.az, lm_p.beta.t1.az,
          title = "Replication of Table B.2, without English-Speaking Respondents.",
          dep.var.labels = c("compensation", "scale(compensation)", "punishment", "scale(punishment)"),
          model.numbers = T,
          omit.stat = c("ser", "f"),
          type = 'latex',         
          header = FALSE,
          font.size = "small",
          label = "tab:azonly",          
          star.char = c("*", "**", "***"),
          star.cutoffs = c(.05, .01, .001),
          notes = c("* p<0.05; ** p<0.01; *** p<0.001"),
          notes.append = F)
```

\newpage

## Replication of Panel Results, with Inverse Probability Weights {#robipw}

```{r effects panel w. IPW, include=FALSE}
## Compensations --------------------------------------------------------------
mypanel <- mydata.t1 %>%
  dplyr::select(ID, 
                observed, female, age, education, 
                poltrust, socdistance, vote,
                comp_condition, compensation) %>%
  drop_na(female, age, education, 
                poltrust, socdistance, vote,
                comp_condition, compensation)
summary(mypanel)

# is treatment assignment related to participation in Wave 2?
observed.c <- glm(as.factor(observed) ~ 
                    (comp_condition*female) + 
                    (comp_condition*age) +
                    (comp_condition*education) + 
                    (comp_condition*compensation) +
                    (comp_condition*poltrust) +
                    (comp_condition*socdistance) + 
                    (comp_condition*vote),
                  data = mypanel, family = binomial(link = "logit"))
probobs.c <- observed.c$fitted

# Compare distribution of predicted probabilityes across experimental conditions
# Check that there are no zero predicted probabilities
summary(probobs.c[mydata.t1$comp_condition=="Armenia"])
summary(probobs.c[mydata.t1$comp_condition=="Azerbaijan"])
summary(probobs.c[mydata.t1$comp_condition=="Both"])
summary(probobs.c[mydata.t1$comp_condition=="Int. Comm."])
summary(probobs.c[mydata.t1$comp_condition=="Control"])

# Generate weights: inverse of the predicted probability of being observed
mypanel$wts.c <- 1/probobs.c

# Create longpanel again, for observed units with weights
mypanel$compensation.t2 <- mydata.t2$compensation[match(mypanel$ID, mydata.t2$ID)]
mypanel <- mypanel %>% drop_na(compensation.t2)
mylongpanel <- reshape(as.data.frame(mypanel), sep = ".t", times = c(1, 2),
                       direction = "long",
                       varying = c("compensation", "compensation.t2"))
mylongpanel$time <- as.factor(mylongpanel$time)

# Coefficients for unweighted and weighted regression
lm_c_atediff <- lm(compensation ~ comp_condition*time,
                   data = mylongpanel)
lm_c_atediff_ipw <- lm(compensation ~ comp_condition*time, 
                       weights = mylongpanel$wts.c,
                       data = mylongpanel)

# summary with cluster-robust SEs
summary(lm_c_atediff, cluster="ID")
summary(lm_c_atediff_ipw, cluster="ID") 

# save cluster robust standard errors
cluster_se_c_atediff <- as.vector(summary(lm_c_atediff,
                                          cluster = c("ID"))$coefficients[,"Std. Error"])
cluster_se_c_atediff_ipw <- as.vector(summary(lm_c_atediff_ipw,
                                              cluster = c("ID"))$coefficients[,"Std. Error"])

# replace names
names(lm_c_atediff$coefficients)[1] <- "(intercept)"
names(lm_c_atediff$coefficients)[2] <- "Armenia"
names(lm_c_atediff$coefficients)[3] <- "Azerbaijan"
names(lm_c_atediff$coefficients)[4] <- "Both"
names(lm_c_atediff$coefficients)[5] <- "IC"
names(lm_c_atediff$coefficients)[6] <- "Time"
names(lm_c_atediff$coefficients)[7] <- "Armenia * Time" 
names(lm_c_atediff$coefficients)[8] <- "Azerbaijan * Time"
names(lm_c_atediff$coefficients)[9] <- "Both * Time"
names(lm_c_atediff$coefficients)[10] <- "IC * Time"
names(lm_c_atediff_ipw$coefficients)[1] <- "(intercept)"
names(lm_c_atediff_ipw$coefficients)[2] <- "Armenia"
names(lm_c_atediff_ipw$coefficients)[3] <- "Azerbaijan"
names(lm_c_atediff_ipw$coefficients)[4] <- "Both"
names(lm_c_atediff_ipw$coefficients)[5] <- "IC"
names(lm_c_atediff_ipw$coefficients)[6] <- "Time"
names(lm_c_atediff_ipw$coefficients)[7] <- "Armenia * Time" 
names(lm_c_atediff_ipw$coefficients)[8] <- "Azerbaijan * Time"
names(lm_c_atediff_ipw$coefficients)[9] <- "Both * Time"
names(lm_c_atediff_ipw$coefficients)[10] <- "IC * Time"


## Punishments --------------------------------------------------------------
mypanel <- mydata.t1 %>%
  dplyr::select(ID, 
                observed, female, age, education, 
                poltrust, socdistance, vote,
                punish_condition, punishment) %>%
  drop_na(female, age, education, 
                poltrust, socdistance, vote,
                punish_condition, punishment)
summary(mypanel)

# is treatment assignment related to participation in Wave 2?
observed.p <- glm(as.factor(observed) ~ 
                    (punish_condition*female) + 
                    (punish_condition*age) +
                    (punish_condition*education) + 
                    (punish_condition*punishment) +
                    (punish_condition*poltrust) +
                    (punish_condition*socdistance) + 
                    (punish_condition*vote),
                  data = mypanel, family = binomial(link = "logit"))
probobs.p <- observed.p$fitted

summary(as.factor(mypanel$observed))

# Compare distribution of predicted probabilityes across experimental conditions
# Check that there are no zero predicted probabilities
summary(probobs.p[mydata.t1$punish_condition=="Armenia"])
summary(probobs.p[mydata.t1$punish_condition=="Azerbaijan"])
summary(probobs.p[mydata.t1$punish_condition=="Both"])
summary(probobs.p[mydata.t1$punish_condition=="Int. Comm."])
summary(probobs.p[mydata.t1$punish_condition=="Control"])

# Generate weights: inverse of the predicted probability of being observed
mypanel$wts.p <- 1/probobs.p

# Create longpanel again, for observed units with weights
mypanel$punishment.t2 <- mydata.t2$punishment[match(mypanel$ID, mydata.t2$ID)]
mypanel <- mypanel %>% drop_na(punishment.t2)
mylongpanel <- reshape(as.data.frame(mypanel), sep = ".t", times = c(1, 2),
                       direction = "long",
                       varying = c("punishment", "punishment.t2"))

# Coefficients for unweighted and weighted regression
lm_p_atediff <- lm(punishment ~ punish_condition*time,
                   data = mylongpanel)
lm_p_atediff_ipw <- lm(punishment ~ punish_condition*time, 
                       weights = mylongpanel$wts.p,
                       data = mylongpanel)

# summary with cluster-robust SEs
summary(lm_p_atediff, cluster="ID")
summary(lm_p_atediff_ipw, cluster="ID") 

# save cluster robust standard errors
cluster_se_p_atediff <- as.vector(summary(lm_p_atediff,
                                          cluster = c("ID"))$coefficients[,"Std. Error"])
cluster_se_p_atediff_ipw <- as.vector(summary(lm_p_atediff_ipw,
                                              cluster = c("ID"))$coefficients[,"Std. Error"])

# replace names
names(lm_p_atediff$coefficients)[1] <- "(intercept)"
names(lm_p_atediff$coefficients)[2] <- "Armenia"
names(lm_p_atediff$coefficients)[3] <- "Azerbaijan"
names(lm_p_atediff$coefficients)[4] <- "Both"
names(lm_p_atediff$coefficients)[5] <- "Time"
names(lm_p_atediff$coefficients)[6] <- "Armenia * Time" 
names(lm_p_atediff$coefficients)[7] <- "Azerbaijan * Time"
names(lm_p_atediff$coefficients)[8] <- "Both * Time"
names(lm_p_atediff_ipw$coefficients)[1] <- "(intercept)"
names(lm_p_atediff_ipw$coefficients)[2] <- "Armenia"
names(lm_p_atediff_ipw$coefficients)[3] <- "Azerbaijan"
names(lm_p_atediff_ipw$coefficients)[4] <- "Both"
names(lm_p_atediff_ipw$coefficients)[5] <- "Time"
names(lm_p_atediff_ipw$coefficients)[6] <- "Armenia * Time" 
names(lm_p_atediff_ipw$coefficients)[7] <- "Azerbaijan * Time"
names(lm_p_atediff_ipw$coefficients)[8] <- "Both * Time"


# get table
stargazer(lm_c_atediff, lm_c_atediff_ipw, lm_p_atediff, lm_p_atediff_ipw,
          se = list(cluster_se_c_atediff, cluster_se_c_atediff_ipw,
                    cluster_se_p_atediff, cluster_se_p_atediff_ipw),
          title = "Replication of Table B.4, with Inverse Probability Weights",
          omit.stat = c("ser", "f"),
          type = 'latex',         
          header = FALSE,
          font.size = "small",
          label = "tab:ipw",
          star.char = c("*", "**", "***"), 
          star.cutoffs = c(.05, .01, .001),
          notes.append = FALSE, notes.align = "l",
          notes = "* p<0.05; ** p<0.01; *** p<0.001 (two-tailed).")
# adjust notes manually below:
```

\begin{table}[!htbp] \centering 
  \caption{Replication of Table B.4, with Inverse Probability Weights} 
  \label{tab:ipw} 
\small 
\begin{tabular}{@{\extracolsep{5pt}}R{3cm}C{2cm}C{2cm}C{2cm}C{2cm}} 
\\[-1.8ex]\hline 
\hline \\[-1.8ex] 
 & \multicolumn{4}{c}{\textit{Dependent variable:}} \\ 
\cline{2-5} 
\\[-1.8ex] & \multicolumn{2}{c}{compensation} & \multicolumn{2}{c}{punishment} \\ 
\\[-1.8ex] & (1) & (2) & (3) & (4)\\ 
\hline \\[-1.8ex] 
 Armenia & 0.802$^{***}$ & 1.123$^{***}$ & 0.211 & 0.373$^{*}$ \\ 
  & (0.219) & (0.209) & (0.176) & (0.185) \\ 
  & & & & \\ 
 Azerbaijan & $-$1.796$^{***}$ & $-$1.800$^{***}$ & $-$1.441$^{***}$ & $-$1.868$^{***}$ \\ 
  & (0.205) & (0.211) & (0.166) & (0.184) \\ 
  & & & & \\ 
 Both & 0.187 & 0.351 & $-$0.237 & $-$0.484$^{**}$ \\ 
  & (0.209) & (0.210) & (0.168) & (0.184) \\ 
  & & & & \\ 
 IC & 0.076 & 0.061 &  &  \\ 
  & (0.204) & (0.210) &  &  \\ 
  & & & & \\ 
 Time & 0.129 & 0.043 & 0.284 & 0.236 \\ 
  & (0.209) & (0.216) & (0.166) & (0.186) \\ 
  & & & & \\ 
 Armenia\textasteriskcentered Time & $-$0.298 & $-$0.150 & $-$0.166 & $-$0.110 \\ 
  & (0.310) & (0.296) & (0.249) & (0.262) \\ 
  & & & & \\ 
 Azerbaijan\textasteriskcentered Time & $-$0.103 & $-$0.003 & $-$0.125 & $-$0.397 \\ 
  & (0.289) & (0.298) & (0.235) & (0.261) \\ 
  & & & & \\ 
 Both\textasteriskcentered Time & $-$0.312 & $-$0.405 & $-$0.184 & $-$0.087 \\ 
  & (0.295) & (0.297) & (0.238) & (0.260) \\ 
  & & & & \\ 
 IC\textasteriskcentered Time & $-$0.295 & $-$0.001 &  &  \\ 
  & (0.289) & (0.297) &  &  \\ 
  & & & & \\ 
 Constant & 3.757$^{***}$ & 3.566$^{***}$ & 4.526$^{***}$ & 4.408$^{***}$ \\ 
  & (0.148) & (0.153) & (0.117) & (0.132) \\ 
  & & & & \\ 
\hline \\[-1.8ex] 
Weights & & \checkmark &  & \checkmark  \\ 
Observations & 710 & 710 & 710 & 710 \\ 
R$^{2}$ & 0.324 & 0.372 & 0.250 & 0.365 \\ 
Adjusted R$^{2}$ & 0.316 & 0.364 & 0.243 & 0.359 \\ 
\hline 
\hline \\[-1.8ex] 
\multicolumn{5}{R{14cm}}{\small{\textit{Note:} Cell entries are unstandardized OLS regression coefficients with clustered robust standard errors in parentheses. Standard errors are clustered by respondent. Dependent variable is support for peace provision, measured on a 5-point scale. The interaction terms are the coefficients of interest to assess long-term effects. The number of observations slightly differs from the ones in Table B.4 due to missingness on the variables used to predict attrition. $^{*}$p$<$0.05; $^{**}$p$<$0.01; $^{***}$p$<$0.001 (two-tailed)}} \\ 
\end{tabular} 
\end{table} 

\newpage

\blandscape

# Qualitative Assessment of Patterns by Provision at Wave 2


\begin{table}[!ht]
\caption{Summary of the Experimental Results.}
\label{tab:summary}
\begin{tabular}{@{}R{70mm} C{2.2cm}C{2.2cm}C{2.2cm}C{2mm}C{15mm}C{15mm}C{15mm}C{15mm}@{}}
\hline
& \multicolumn{3}{c}{Feature of Peace Provision} &  & \multicolumn{4}{c}{\textcolor{red}{Actor}}   \\ \midrule
Peace provision  & Concerns domestic affairs & Implies in-group guilt & Requires mutual trust; common goal &  & Armenia & Azerbaijan & Burden-sharing & IC \\
Victims of   the war, both Azeris and Armenians, should receive monetary compensations   from {[}\textcolor{red}{Actor}{]}                          &                           & \checkmark                      &                                    &  & +       & ‒          &                &    \\
All war   crimes committed by {[}\textcolor{red}{Actor}{]} should   be severely punished.                                                           &                           & \checkmark                      &                                    &  & +       & ‒          & ‒              &    \\
{[}\textcolor{red}{Actor}{]} shall invest in a new transport route   connecting the Nakhchivan Autonomous Republic and Azerbaijan.                  & \checkmark                         &                        &                                    &  & ‒       &            &                &    \\
{[}\textcolor{red}{Actor}{]} shall invest in a new route via the   Lachin Corridor, to provide a connection between Nagorno-Karabakh and   Armenia. &                           &                        & \checkmark                                  &  &         &            & +              &    \\
{[}\textcolor{red}{Actor}{]} shall initiate trust- and cohesion-   building workshops between Armenian and Azerbaijani citizens                     &                           &                        & \checkmark                                  &  &         &            & +              &    \\
{[}\textcolor{red}{Actor}{]} shall clear towns, villages, roads,   and the land around them of mines and unexploded ordnance.                       & \checkmark                         &                        &                                    &  & ‒       &            &                & ‒  \\
{[}\textcolor{red}{Actor}{]} shall provide aid to military   personnel left disabled by the war and to the families of those killed.                & \checkmark                         &                        &                                    &  & ‒       &            &                & ‒  \\
{[}\textcolor{red}{Actor}{]} shall release all prisoners of war,   hostages, and other detained persons.                                            &                           &                        & \checkmark                                  &  &         &            & +              &    \\
{[}\textcolor{red}{Actor}{]} displaced during the 1994 and 2020 conflict   shall be able to return home safely.                                     & \checkmark                         &                        & (\checkmark)                                &  & ‒       &            &                &    \\ \hline
\end{tabular}
\end{table}

\elandscape

# Deviations From and Additions to Preregistration {#prereg}

\renewcommand{\thefigure}{D.\arabic{figure}}
\setcounter{figure}{0}
\renewcommand{\thetable}{D.\arabic{table}}
\setcounter{table}{0}

We registered our research design at Open Science Framework before we started the data collection. Below, we report the full list of deviations from and additions^[For all additions, we relied on the standard operating procedures used at Don Green's lab at Columbia [@Lin2016], which are used to make analytic decisions that have not been made explicit in pre-analysis plans.] to the preregistration:

## Deviations
\begin{itemize}[noitemsep]
  \item We specified that we would report OLS regressions on the full sample or, in other words, intention-to-treat estimates (ITTs) in the main paper and OLS regressions on a subsample of respondents that passed the manipulation check or, in other words, complier-average causal effects estimates (CACEs) in the appendix. However, we did not have a manipulation check because we embedded our question-wording experiments in larger batteries in which several actors were mentioned. As a result, we were unable to fit and report CACEs.
  \item We were ambiguous about how to specify outliers on the timing variable. In the pre-analysis plan, we stated that ``respondents who rush trough the survey will be excluded (i.e., outliers on the timing variables)." We used the 95\% percentile to exclude respondents who rushed through the survey in 1 minutes and 35 seconds or less.
  \item We were ambiguous about how to analyze the repeated experiments.
  \item Our main analyses are based on a sample of 1,657 respondents but we aimed to collect 2000 respondents. Yet the pre-registered power calculation was based on a---arguably unreasonably---small effect size of f=0.043.
  \end{itemize}
  
  
## Additions
\begin{itemize}[noitemsep]
  \item In the pre-analysis plan, we specified we would report models with adjustment for found imbalances. In Table \ref{tab:controls}, we also added several socio-political variables that are not imbalanced but are expected to help predict support for monetary compensations and war crime punishment.\footnote{Here, we follow footnote 16 in Lin, Green, and Coppock (2016): As Bruhn and McKenzi (2009, 226) emphasize, "greater power is achieved by always adjusting for a covariate that is highly correlated with the outcome of interest, regardless of its distribution between groups."}
  \item We did not specify how to deal with attrition. Following Lin, Green, and Coppock (2016), we decided to compare both attrition rates across treatment arms and attrition patterns across treatment arms.
  \item We did not specify how to deal with missing values on pre-treatment covariates. Since we have very few missings on covariates (Table \ref{tab:sumstats}) as well as very few models using covariates (Tables \ref{tab:controls} and \ref{tab:ipw}), we opted for list-wise deletion.
\end{itemize}

```{r include=FALSE}
 # \item We did not specify how to deal with missing values on pre-treatment covariates. Given that no more than 10\% of the covariates' values were missing (Table \ref{tab:sumstats}), we recoded the missing values to the overall mean before using covariates in Sections \ref{ass} and \ref{rob}.
```

\newpage
# References
